home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
tools
/
ivl
/
src
/
ivl.h
< prev
next >
Wrap
Text File
|
2000-06-23
|
5KB
|
144 lines
#if !defined(IVL_H_HAS_INCLUDED)
#define IVL_H_HAS_INCLUDED
/*
* SXアイコン表示処理(複数ファイル指定対応)
*
* ivl.x
*
* v0.01: from May.29,1999. dummy.x.(with J-S.I.)
*
*謝辞: このプログラムは(電脳倶楽部53号掲載の IV.X v1.20(内瀬優+頼藤凌両氏)
* を参照しています。両氏に深く感謝します。
*/
#include <sys\dos.h>
#include "comtype.h"
#include "libpt4.h"
/* データ構造定義 */
typedef struct _filbuf _filesbuf_t; /* DOS _FILES データ */
/* ファイル管理データ */
typedef struct {
const char *pathp; /* ファイル名 */
_filesbuf_t fbuf; /* DOS _FILES バッファ */
signed char rdresult; /* 先行読み込みでの返却値(RDPT4_~) */
pt4_struct_t *rdbufp; /* 先行読み込みバッファアドレス(=NULL:読み込んでない) */
short wdots, hdots; /* 画像の横幅/縦高(dot単位)(wdots<0:ファイルエラーあり) */
} filelist_t;
/* 定数定義 */
#define DEF_PROG_NAME "ivl" /* このプログラムの名前 */
#define DEF_ICN_FEXT ".PT4" /* アイコンデータファイルの標準拡張子 */
#define DEF_SCREEN_WIDTH 768 /* 画面横幅標準値 */
#define DEF_SCREEN_HEIGHT (512 - (16 + 2)) /* 画面縦高標準値 */
/* アイコン表示数 */
#define DEF_PAT_ON_LINE 7 /* 1行のパターン表示数標準値 */
#define PAT_ON_LINE_MIN 1 /* 1行のパターン表示数最小値 */
#define PAT_ON_LINE_MAX 8 /* 1行のパターン表示数最大値 */
#define DEF_PAT_LINE_KAZ 4 /* パターン表示行数標準値 */
#define PAT_LINE_KAZ_MIN 1 /* パターン表示行数最小値 */
#define PAT_LINE_KAZ_MAX 7 /* パターン表示行数最大値 */
/* アイコン情報の表示関連 */
#define INF_MOJI_WIDTH 6 /* アイコン情報文字横幅(半角) */
#define INF_MOJI_HEIGHT 12 /* アイコン情報文字縦高 */
#define INF_AREA_DIF 2 /* アイコン情報表示領域のアイコン画像との隙間 */
#define INF_AREA_HEIGHT (INF_MOJI_HEIGHT + INF_AREA_DIF * 2)
/* アイコン情報表示領域の縦高(文字高+上下に隙間) */
/* アイコン情報の種類 */
enum {
ICONINFO_NAME = 0, /* ファイル名 */
ICONINFO_PATH, /* パス名 */
ICONINFO_INFO, /* 画像情報 */
ICONINFO_KAZ
};
/* アイコン画像表示領域サイズ */
#define DEF_PAT_GRPH_W 35 /* 表示画像横幅標準値 */
#define PAT_GRPH_W_MIN 1 /* 表示画像横幅最小値 */
#define PAT_GRPH_W_MAX DEF_SCREEN_WIDTH /* 表示画像横幅最大値 */
#define DEF_PAT_GRPH_H 38 /* 表示画像縦高標準値 */
#define PAT_GRPH_H_MIN 1 /* 表示画像縦高最小値 */
#define PAT_GRPH_H_MAX DEF_SCREEN_HEIGHT /* 表示画像縦高最大値 */
/* 動作状態指示フラグ bit 列の各bitの意味
* 注記 * 競合する bit は、基本的に番号が小さいほど優先される。
*/
enum {
FBIT_PAGE_BY_SIZE, /* 1画面の表示数の設定方法(=0:個数/=1:画像サイズから算出) */
FBIT_BYSZ_UNLIM, /* (画像サイズ算出時)表示個数の上限判定を行なわない(=1:有効) */
FBIT_BYSZ_FINDMX, /* (画像サイズ算出時)登録ファイル中での最大サイズを使う(=1:有効) */
FBIT_ONLYINFO, /* 情報表示のみ行なう(=1:有効) */
FBIT_NOFILE, /* ファイル名引数の処理不要(=1:不要) */
FBIT_VERBOSE, /* 処理の進行状況を表示(=1:有効) */
FBIT_ONMEMORY, /* 先行読み込み(=1:有効) */
FBIT_ONMEM_SZ, /* 先行して画像サイズだけ読んでおく(=1:有効) */
FBIT_NOCTRL_KEY, /* キーボード操作禁止(=1:禁止) */
FBIT_NOCTRL_MS, /* マウス操作禁止(=1:禁止) */
FBIT_NOCTRL_JOY, /* ジョイスティック操作禁止(=1:禁止) */
FBIT_NOCUTINF, /* ファイル情報表示を切り詰めない(=1:有効) */
FBIT_FNCASE, /* ファイル名の大小文字(=1:有効) */
FBIT_BIT_KAZ
};
/* ユーザ操作コード */
enum {
CTRL_NONE = 0, /* 操作なし(現状維持) */
CTRL_QUIT, /* 終了 */
CTRL_QUIT_KPSCR, /* 終了:画面状態維持 */
CTRL_NEXTPAGE, /* 次ページに移動 */
CTRL_NEXTLINE, /* 次行に移動 */
CTRL_BACKLINE, /* 前行に移動 */
CTRL_BACKPAGE, /* 前ページに移動 */
CTRL_FIRSTPAGE, /* ページ0に戻る */
CTRL_WIDTH_512, /* 表示画面 512×512 モードに */
CTRL_WIDTH_768, /* 表示画面 768×512 モードに */
CTRL_INFO_NAME, /* アイコンファイル名表示 */
CTRL_INFO_PATH, /* アイコンファイルパス名表示 */
CTRL_INFO_INFO, /* アイコン情報表示 */
CTRL_DISP_NORM, /* 画像を通常表示に戻す */
CTRL_DISP_NGTV, /* 画像表示を色反転/戻す(toggle) */
CTRL_DISP_MONO, /* 画像表示を白黒に/戻す(toggle) */
#if 0
CTRL_LASTPAGE, /* 最終ページに進む */
CTRL_INFO_CHG, /* アイコン情報表示切替 */
#endif
CTRL_CODE_KAZ
};
/* 大域変数宣言 */
/* ivl */
extern ushort state_flag_bits;
/* ivl_iv */
extern short pat_on_line;
extern short pat_line_kaz;
extern short screen_width, screen_height;
extern short pat_disp_area_w, pat_disp_area_h;
extern short pat_disp_area_gh;
/* ivl_ftbl */
extern long arg_file_kaz;
extern filelist_t *arg_file_tblp;
/* 関数宣言 */
/* ivl_iv */
extern int view_icons(void);
extern void init_view_info(void);
/* ivl_ftbl */
extern long entry_arg_file_name(const char *pathp, const struct _filbuf *filesp);
/* ivl_draw */
extern void symbol_pt4_error(const char *msgp, ushort tx, ushort ty);
extern void symbol_6x12(const char *strp, ushort tx, ushort ty);
extern void boxfill_in_area(short x, short y, short w, short h);
extern void print_message_on_guideline \
(const char *strp, int col, int topno, int maxno, int sepch);
/* ivl_ctrl */
extern int get_user_ctrl(void);
/* ivl_oi */
extern int print_all_icon_info(void);
extern int print_pageview_data(void);
/* 簡易マクロ */
/* 進行状況の表示
* その指示がある時にのみ表示を行なう
*/
#define printf_at_verbose(pargs) \
if (chkbit(state_flag_bits, FBIT_VERBOSE)) {printf##pargs##;}
#endif /* !defined(IVL_H_HAS_INCLUDED) */